#ifndef _YM2612_ENUM_
#define _YM2612_ENUM_
//=======================================================================================================
// YM2612Enum
// Author: Landon Podbielski
// Description: Various enums representing values for the YM2612 used by various classes. The important
//				enum here is YM2612Param, which represents all modifiable parameters in the chip.
//-------------------------------------------------------------------------------------------------------
enum YM2612Param
{
	INVALID_PARAM,
	DT,
	MUL,
	DT_MUL,
	TL,
	RS,
	AR,
	RS_AR,
	AM,
	DR1,
	AM_DR1,
	DR2,
	DL1,
	RR,
	DL1_RR,
	SSG_EG,
	F1,
	F2,
	FNUM_1,
	FNUM_2,
	FREQ_BEND,
	FB_ALGORITHM,
	ALGS_MIN,
	ALG01,
	ALG02,
	ALG03,
	ALG04,
	ALG05,
	ALG06,
	ALG07,
	ALG08,
	ALGS_MAX,

	CHANNEL_PROPS_MIN,
	ALG_FEEDBACK,
	LFO_EN,
	LFO,
	AMS,
	FMS,
	PAN,
	CHANNEL_PROPS_MAX,

	INSTRUMENT_PROPS_MIN,
	INS_CHAN01_EN,
	INS_CHAN02_EN,
	INS_CHAN03_EN,
	INS_CHAN04_EN,
	INS_CHAN05_EN,
	INS_CHAN06_EN,
	INSTRUMENT_PROPS_MAX,

	STATE_PROPS_MIN,
	CHAN01_EN,
	CHAN02_EN,
	CHAN03_EN,
	CHAN04_EN,
	CHAN05_EN,
	CHAN06_EN,
    INS_TAB_SEL01,
    INS_TAB_SEL02,
    INS_TAB_SEL03,
    INS_TAB_SEL04,
    INS_TAB_SEL05,
    INS_TAB_SEL06,
	EMULATION_MODE,
	SPECIAL_MODE,
	STATE_PROPS_MAX,
	NOTE_ON,
	MIDILEARN_MENU,	

	NUM_2612PARAMS
};

enum YM2612Clock
{
	YM2612_NTSC = 7670592,
	YM2612_PAL = 7600482
};

#endif //_YM2612_ENUM_